

function setupWebViewJavascriptBridge(callback) {
    if (window.WebViewJavascriptBridge) { 
        return callback(WebViewJavascriptBridge); 
    }
    if (window.WVJBCallbacks) { 
        return window.WVJBCallbacks.push(callback); 
    }
    window.WVJBCallbacks = [callback];
    var WVJBIframe = document.createElement('iframe');
    WVJBIframe.style.display = 'none';
    WVJBIframe.src = 'https://__bridge_loaded__';
    document.documentElement.appendChild(WVJBIframe);
    setTimeout(function() { 
        document.documentElement.removeChild(WVJBIframe) 
    }, 0)
}

export default {
    callHandler (name, data, callback) {
        setupWebViewJavascriptBridge ( function (bridge) {
            bridge.callHandler( name, data, callback)
        })
    },
    registerHandler (name, callback) {
        setupWebViewJavascriptBridge ( function (bridge) {
            bridge.registerHandler (name, function (data, responseCallback) {
                callback(data, responseCallback)
            })
        })
    }
}